ExtJS একটি শক্তিশালী ফ্রেমওয়ার্ক যা Data Binding এর মাধ্যমে ডেটা এবং UI-এর মধ্যে একে অপরের সাথে সংযোগ স্থাপন করতে সক্ষম। ডেটা বাইন্ডিং ব্যবহার করে, আপনি UI এবং ডেটার মধ্যে একটি স্বয়ংক্রিয় সম্পর্ক তৈরি করতে পারেন, যাতে UI পরিবর্তিত হলে ডেটাও আপডেট হয় এবং ডেটা পরিবর্তিত হলে UI আপডেট হয়। Two-way binding এই সম্পর্কের উন্নত একটি ফিচার যা উভয় দিক থেকে ডেটা পরিবর্তনের জন্য ব্যবহৃত হয়।
Data Binding হলো একটি পদ্ধতি যেখানে ডেটা (যেমন, মডেল) এবং UI কম্পোনেন্টের মধ্যে একটি সম্পর্ক স্থাপন করা হয়, যাতে একটি পরিবর্তন অপরটিকে স্বয়ংক্রিয়ভাবে আপডেট করে।
ExtJS তে Data Binding প্রধানত মডেল এবং ভিউ কম্পোনেন্টের মধ্যে কাজ করে। যখন মডেল (যেমন, একটি স্টোর বা মডেল) আপডেট হয়, তখন ভিউ (যেমন, গ্রিড, ফর্ম, বা প্যানেল) সেই আপডেটগুলি রিফ্লেক্ট করে এবং এটি UI-তে স্বয়ংক্রিয়ভাবে প্রদর্শিত হয়।
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: [
{ name: 'id', type: 'int' },
{ name: 'name', type: 'string' },
{ name: 'email', type: 'string' }
]
});
Ext.create('MyApp.model.User', {
id: 1,
name: 'John Doe',
email: 'john.doe@example.com'
});
Ext.create('Ext.form.Panel', {
title: 'User Information',
items: [{
xtype: 'textfield',
fieldLabel: 'Name',
bind: '{name}' // মডেল থেকে ডেটা বাইনড করা হচ্ছে
}],
renderTo: Ext.getBody()
});
এখানে, bind: '{name}'
ব্যবহার করে textfield
UI কম্পোনেন্টটিকে মডেলের name
ফিল্ডের সাথে বাইনড করা হয়েছে। যখন মডেলটির name
পরিবর্তিত হবে, তখন UI-তে এটি স্বয়ংক্রিয়ভাবে আপডেট হবে।
Two-way Data Binding একটি শক্তিশালী বৈশিষ্ট্য যা UI এবং ডেটার মধ্যে দুটি দিকনির্দেশক সম্পর্ক তৈরি করে। এর মানে হল যে, UI-তে যে কোনো পরিবর্তন হবে, সেটি মডেল (ডেটা) আপডেট করবে এবং মডেল (ডেটা) পরিবর্তন হলে UI-তে সেটি প্রতিফলিত হবে।
ExtJS তে Two-way Binding কার্যকর করার জন্য bind
ব্যবহার করা হয়। এই ফিচারের মাধ্যমে, ব্যবহারকারীর ইনপুট সরাসরি মডেল ডেটার সাথে সংযুক্ত হয় এবং ডেটার পরিবর্তন UI-তে প্রতিফলিত হয়।
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: [
{ name: 'id', type: 'int' },
{ name: 'name', type: 'string' },
{ name: 'email', type: 'string' }
]
});
var user = Ext.create('MyApp.model.User', {
id: 1,
name: 'John Doe',
email: 'john.doe@example.com'
});
Ext.create('Ext.form.Panel', {
title: 'User Information',
items: [{
xtype: 'textfield',
fieldLabel: 'Name',
bind: '{user.name}' // Two-way binding
}],
viewModel: {
data: {
user: user // মডেলকে ভিউমডেল এ যুক্ত করা
}
},
renderTo: Ext.getBody()
});
এখানে, bind: '{user.name}'
ব্যবহার করা হয়েছে, যা name
ফিল্ডে two-way binding সেট করে। যখন ইউজার ফর্মের name
ফিল্ডে কোনো পরিবর্তন করবেন, এটি মডেল (user
) এর name
ফিল্ডে আপডেট হবে এবং মডেলের name
ফিল্ডে কোনো পরিবর্তন হলে UI-তে তা স্বয়ংক্রিয়ভাবে আপডেট হবে।
bind: '{modelField}'
ব্যবহৃত হয়।bind: '{modelField}'
ব্যবহৃত হয়।ExtJS এর Data Binding এবং Two-way Binding ডেভেলপারদের কোডের জটিলতা কমাতে এবং ডেটা ম্যানেজমেন্টে সুবিধা দেয়, বিশেষ করে ডেটা এবং ইউজার ইন্টারফেসের মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখতে।
Read more